/* Layout specific styles */

/* Banner text styles */
.banner-title {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    animation: banner-fadeInUp 1s ease-out;
    font-weight: bold;
}

.banner-subtitle {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
    animation: banner-fadeInUp 1s ease-out 0.3s both;
}

@keyframes banner-fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 移动端无侧边栏布局优化 */
@media (max-width: 768px) {
    .mobile-no-sidebar {
        display: block !important;
        width: 100% !important;
    }
    
    .mobile-no-sidebar main {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .mobile-no-sidebar #content-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
}

/* 移动端横幅优化 - 小屏手机 (320px - 480px) */
@media (max-width: 480px) {
    /* Banner wrapper 高度优化 - 优先保持banner显示 */
    #banner-wrapper {
        height: 70vh !important; /* 保持较大高度优先显示banner */
        min-height: 450px;
        max-height: none; /* 移除最大高度限制 */
        top: 0 !important; /* 移动端从顶部开始，避免被导航栏覆盖 */
    }
    
    /* 主内容区域位置调整 - 向上移动以部分遮挡banner */
    .absolute.w-full.z-30 {
        top: 65vh !important; /* 向上移动5vh，部分遮挡banner */
        min-height: calc(100vh - 65vh) !important;
    }
    
    /* 横幅文本覆盖层优化 */
    .banner-text-overlay {
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        padding: 1rem !important;
        text-align: center !important; /* 文字居中对齐 */
    }
    
    /* 文本容器优化 */
    .banner-text-overlay > div {
        margin-bottom: 0 !important; /* 移除底部边距，保持居中 */
        width: 95% !important; /* 增加文本宽度利用率 */
        text-align: center !important; /* 确保文字居中 */
    }
    
    /* 标题字体优化 */
    .banner-title {
        font-size: 3.2rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 0.5rem !important;
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8) !important; /* 增强阴影 */
    }
    
    /* 副标题字体优化 */
    .banner-subtitle {
        font-size: 1rem !important;
        line-height: 1.3 !important;
        text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7) !important;
    }
    
    /* 波浪效果高度调整 - 与文章列表提升同步 */
    .waves {
        height: 13vh !important;
        min-height: 100px !important;
        max-height: 176px !important;
    }
}

/* 移动端横幅优化 - 大屏手机 (481px - 640px) */
@media (min-width: 481px) and (max-width: 640px) {
    /* Banner wrapper 高度优化 - 优先保持banner显示 */
    #banner-wrapper {
        height: 75vh !important;
        min-height: 500px;
        max-height: none; /* 移除最大高度限制 */
        top: 0 !important; /* 移动端从顶部开始，避免被导航栏覆盖 */
    }
    
    /* 主内容区域位置调整 - 向上移动以部分遮挡banner */
    .absolute.w-full.z-30 {
        top: 70vh !important; /* 向上移动5vh，部分遮挡banner */
        min-height: calc(100vh - 70vh) !important;
    }
    
    /* 横幅文本覆盖层优化 */
    .banner-text-overlay {
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        padding: 1.5rem !important;
        text-align: center !important; /* 文字居中对齐 */
    }
    
    /* 文本容器优化 */
    .banner-text-overlay > div {
        margin-bottom: 0 !important; /* 移除底部边距，保持居中 */
        width: 90% !important;
        text-align: center !important; /* 确保文字居中 */
    }
    
    /* 标题字体优化 */
    .banner-title {
        font-size: 3.8rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 0.75rem !important;
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8) !important;
    }
    
    /* 副标题字体优化 */
    .banner-subtitle {
        font-size: 1.125rem !important;
        line-height: 1.4 !important;
        text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7) !important;
    }
    
    /* 波浪效果高度调整 - 与文章列表提升同步 */
    .waves {
        height: 15vh !important;
        min-height: 110px !important;
        max-height: 166px !important;
    }
}

/* 平板设备横幅优化 (641px - 1023px) */
@media (min-width: 641px) and (max-width: 1023px) {
    /* Banner wrapper 高度优化 */
    #banner-wrapper {
        height: 70vh !important;
        min-height: 500px;
        top: 0 !important; /* 移动端从顶部开始，避免被导航栏覆盖 */
    }
    
    /* 主内容区域位置调整 - 向上移动以部分遮挡banner */
    .absolute.w-full.z-30 {
        top: 65vh !important; /* 向上移动5vh，部分遮挡banner */
        min-height: calc(100vh - 65vh) !important;
    }
    
    /* 横幅文本覆盖层优化 */
    .banner-text-overlay {
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        padding: 2rem !important;
        text-align: center !important; /* 文字居中对齐 */
    }
    
    /* 文本容器优化 */
    .banner-text-overlay > div {
        margin-bottom: 0 !important; /* 移除底部边距，保持居中 */
        width: 85% !important;
        text-align: center !important; /* 确保文字居中 */
    }
    
    /* 标题字体优化 */
    .banner-title {
        font-size: 4rem !important;
        line-height: 1.1 !important;
        margin-bottom: 1rem !important;
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8) !important;
    }
    
    /* 副标题字体优化 */
    .banner-subtitle {
        font-size: 1.5rem !important;
        line-height: 1.4 !important;
        text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7) !important;
    }
    
    /* 波浪效果高度调整 - 与文章列表提升同步 */
    .waves {
        height: 17vh !important;
        min-height: 120px !important;
        max-height: 216px !important;
    }
}

/* 桌面端保持居中 (1024px+) */
@media (min-width: 1024px) {
    .banner-text-overlay {
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        padding: 2rem !important;
        text-align: center !important; /* 文字居中对齐 */
    }
    
    .banner-text-overlay > div {
        margin-bottom: 0 !important;
        width: 75% !important;
        text-align: center !important; /* 确保文字居中 */
    }
    
    /* 背景图片优化 */
    #banner img {
        transition: transform 1s ease-out !important;
    }
    
    /* 波浪效果恢复默认 */
    .waves {
        height: 15vh !important;
        min-height: 80px !important;
        max-height: 150px !important;
    }
}

/* 移动端图片优化 */
@media (max-width: 1023px) {
    /* 移动端背景图片优化 */
    #banner img {
        transition: transform 0.5s ease-out !important;
    }
    
    /* 移动端banner加载动画优化 */
    .onload-animation-fade-in {
        animation: mobile-fade-in 0.8s ease-out forwards !important;
    }
}

/* 移动端专用淡入动画 - 与电脑端保持一致 */
@keyframes mobile-fade-in {
    0% {
        opacity: 0;
        transform: scale(1.1);
    }
    100% {
        opacity: 1;
        transform: scale(1); /* 与电脑端当前图片缩放保持一致 */
    }
}

/* 手机端非首页隐藏banner - 改进的分阶段动画 */
@media (max-width: 1023px) {
    #banner-wrapper {
        transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease-out;
        transform-origin: top center;
        /* 硬件加速优化 */
        will-change: transform, opacity;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
    }
    
    .mobile-hide-banner {
        transform: translateY(-100%) translateZ(0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        /* 快速消失 */
        transition: transform 0.3s ease-in, opacity 0.2s ease-in !important;
    }
    
    /* 手机端非首页时主内容区域从顶部开始 - 延迟出现的动画 */
    .absolute.w-full.z-30 {
        transition: top 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s;
        /* 硬件加速优化 */
        will-change: top;
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
    }
    
    .absolute.w-full.z-30.mobile-main-no-banner {
        top: 5.5rem !important;
        min-height: calc(100vh - 5.5rem) !important;
        /* 内容区域快速上移 */
        transition: top 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s !important;
    }
}

/* 移动端导航栏与banner的协调 */
@media (max-width: 1023px) {
    #navbar-wrapper {
        /* 移除覆盖样式，让Navbar.astro的圆角和半透明效果生效 */
    }
    
    /* 暗色主题下的导航栏 */
    :root.dark #navbar-wrapper {
        /* 移除覆盖样式，让Navbar.astro的圆角和半透明效果生效 */
    }
}

/* 移动端banner性能优化 */
@media (max-width: 1023px) {
    .banner-container {
        /* 启用硬件加速 */
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
        will-change: transform, opacity;
        
        /* 优化渲染性能 */
        contain: layout style paint;
        
        /* 减少重绘 */
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }

    .carousel-item {
        /* 硬件加速 */
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
        will-change: transform, opacity;
        
        /* 优化触摸响应 */
        touch-action: pan-y;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        user-select: none;
    }

    .banner-text-overlay {
        /* 文字渲染优化 */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizeLegibility;
        
        /* 减少重排 */
        contain: layout style;
    }

    /* 移动端图片优化 - 只针对装饰性图片 */
    .banner-container img:not(.interactive):not([onclick]):not([data-clickable]) {
        /* 图片渲染优化 */
        image-rendering: -webkit-optimize-contrast;
        image-rendering: crisp-edges;
        
        /* 防止图片拖拽 */
        -webkit-user-drag: none;
        -khtml-user-drag: none;
        -moz-user-drag: none;
        -o-user-drag: none;
        user-drag: none;
        
        /* 触摸优化 - 只针对装饰性图片 */
        pointer-events: none;
    }
    
    /* 交互式图片保持可点击 */
    .banner-container img.interactive,
    .banner-container img[onclick],
    .banner-container img[data-clickable] {
        pointer-events: auto;
        cursor: pointer;
    }
}

/* 当banner被禁用时的布局样式 */
.no-banner-layout {
    top: 5.5rem !important;
    min-height: calc(100vh - 5.5rem) !important;
}

/* 移动端当banner被禁用时的布局样式 */
@media (max-width: 1023px) {
    .absolute.w-full.z-30.no-banner-layout {
        top: 5.5rem !important;
        min-height: calc(100vh - 5.5rem) !important;
        transition: none !important; /* 移除过渡动画，立即应用位置 */
    }
}

/* 小屏手机当banner被禁用时的布局样式 */
@media (max-width: 480px) {
    .absolute.w-full.z-30.no-banner-layout {
        top: 5.5rem !important;
        min-height: calc(100vh - 5.5rem) !important;
        transition: none !important;
    }
}

/* 平板设备当banner被禁用时的布局样式 */
@media (min-width: 641px) and (max-width: 1023px) {
    .absolute.w-full.z-30.no-banner-layout {
        top: 5.5rem !important;
        min-height: calc(100vh - 5.5rem) !important;
        transition: none !important;
    }
}

/* 移动端横屏优化 */
@media (max-width: 1023px) and (orientation: landscape) {
    #banner-wrapper:not(.mobile-hide-banner) {
        top: 0 !important; /* 横屏模式从顶部开始，避免被导航栏覆盖 */
        height: 60vh !important;
    }
    
    /* 主内容区域位置调整 - 确保在banner下面，但不影响非首页 */
    .absolute.w-full.z-30:not(.mobile-main-no-banner) {
        top: 60vh !important; /* 与banner高度对应 */
        min-height: calc(100vh - 60vh) !important;
    }
    
    .banner-container {
        height: 60vh;
        min-height: 300px;
    }

    .banner-text-overlay {
        padding: 1rem 1.5rem;
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        text-align: center !important; /* 文字居中对齐 */
    }

    .banner-title {
        font-size: 2.2rem !important; /* 增大字体大小 */
        line-height: 1.3;
    }

    .banner-subtitle {
        font-size: 0.9rem;
        margin-top: 0.5rem;
    }
}

/* 移动端暗色模式优化 */
@media (max-width: 1023px) and (prefers-color-scheme: dark) {
    .banner-text-overlay {
        background: linear-gradient(
            to top,
            rgba(0, 0, 0, 0.8) 0%,
            rgba(0, 0, 0, 0.4) 50%,
            transparent 100%
        );
    }

    .banner-title {
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8);
    }

    .banner-subtitle {
        text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7);
    }
}

/* 水波纹显示优化 */
.waves {
    /* 确保水波纹完整显示 */
    overflow: visible;
    z-index: 5;
    /* 硬件加速，确保与背景同步渲染 */
    transform: translateZ(0);
    will-change: transform;
    /* 移除contain属性，避免限制动画渲染范围 */
    contain: none;
}

.waves svg {
    /* 确保SVG完整渲染 */
    width: 100%;
    height: 100%;
    display: block;
    /* SVG硬件加速 */
    transform: translateZ(0);
    backface-visibility: hidden;
}

/* 波浪填充色主题切换优化 */
.waves use {
    /* 确保填充色与页面背景同步更新 */
    will-change: fill;
}

/* 波浪与背景同步切换优化 - 解决交界线闪烁 */
#header-waves {
    /* 确保波浪容器与页面背景在同一合成层 */
    isolation: isolate;
    /* 移除contain属性，避免限制波浪动画 */
    contain: none;
    /* 精确对齐 */
    margin-bottom: -1px;
}

/* 主题切换时的额外保护 */
.theme-changing #header-waves,
.theme-changing #header-waves svg,
.theme-changing #header-waves use {
    /* 在主题切换期间禁用所有可能的渲染延迟 */
    will-change: auto;
    transform: translateZ(0);
    backface-visibility: hidden;
}

/* 移动端水波纹特殊优化 */
@media (max-width: 1023px) {
    #header-waves {
        /* 确保水波纹容器不被裁剪 */
        overflow: visible;
        z-index: 5;
        /* 水波纹快速消失动画 */
        transition: transform 0.3s ease-in, opacity 0.2s ease-in;
    }
    
    /* 当banner隐藏时，水波纹快速消失 */
    .mobile-hide-banner #header-waves {
        transform: translateY(-100%);
        opacity: 0;
        /* 水波纹比banner更快消失 */
        transition: transform 0.25s ease-in, opacity 0.15s ease-in;
    }
    
    .waves svg {
        /* 移动端SVG优化 */
        min-height: 60px;
    }
    
    /* 确保水波纹在banner底部正确定位 */
    .waves {
        bottom: -1px !important;
        position: absolute !important;
    }
}

/* 超小屏幕水波纹优化 */
@media (max-width: 360px) {
    .waves {
        height: 6vh !important;
        min-height: 50px !important;
        max-height: 70px !important;
    }
}

/* 基于屏幕高度的banner优化 - 优先显示banner */
/* 极小高度屏幕 (高度 ≤ 500px) */
@media (max-height: 500px) {
    #banner-wrapper {
        height: 85vh !important; /* 占用更多高度确保banner显示 */
        min-height: 350px !important;
    }
    
    .banner-text-overlay {
        padding: 1rem !important;
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        text-align: center !important; /* 文字居中对齐 */
    }
    
    .banner-title {
        font-size: 2.8rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 0.5rem !important;
    }
    
    .banner-subtitle {
        font-size: 0.9rem !important;
        line-height: 1.2 !important;
    }
    
    .waves {
        height: 5vh !important;
        min-height: 40px !important;
        max-height: 50px !important;
    }
}

/* 小高度屏幕 (高度 501px - 600px) */
@media (min-height: 501px) and (max-height: 600px) {
    #banner-wrapper {
        height: 80vh !important;
        min-height: 400px !important;
    }
    
    .banner-text-overlay {
        padding: 1.5rem !important;
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        text-align: center !important; /* 文字居中对齐 */
    }
    
    .banner-title {
        font-size: 3.2rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 0.75rem !important;
    }
    
    .banner-subtitle {
        font-size: 1rem !important;
        line-height: 1.3 !important;
    }
    
    .waves {
        height: 6vh !important;
        min-height: 50px !important;
        max-height: 60px !important;
    }
}

/* 中等高度屏幕 (高度 601px - 700px) */
@media (min-height: 601px) and (max-height: 700px) {
    #banner-wrapper {
        height: 75vh !important;
        min-height: 450px !important;
    }
    
    .banner-text-overlay {
        padding: 2rem !important;
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        text-align: center !important; /* 文字居中对齐 */
    }
    
    .banner-title {
        font-size: 3.8rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 1rem !important;
    }
    
    .banner-subtitle {
        font-size: 1.125rem !important;
        line-height: 1.4 !important;
    }
    
    .waves {
        height: 8vh !important;
        min-height: 60px !important;
        max-height: 80px !important;
    }
}

/* 横屏模式特殊处理 - 优先显示banner */
@media (orientation: landscape) and (max-height: 500px) {
    #banner-wrapper {
        height: 90vh !important; /* 横屏时占用更多高度 */
        min-height: 300px !important;
    }
    
    .banner-text-overlay {
        padding: 1rem 2rem !important;
        align-items: center !important; /* 垂直居中 */
        justify-content: center !important; /* 水平居中 */
        text-align: center !important; /* 文字居中对齐 */
    }
    
    .banner-title {
        font-size: 2.8rem !important; /* 增大字体大小 */
        line-height: 1.1 !important;
        margin-bottom: 0.5rem !important;
    }
    
    .banner-subtitle {
        font-size: 1rem !important;
        line-height: 1.2 !important;
    }
    
    .waves {
        height: 4vh !important;
        min-height: 30px !important;
        max-height: 40px !important;
    }
}
